export default class Judge{
    //判断是否是无效变量，全部为空或未定义即为无效
    static isInvalid(data,bool=true){
        if(data===undefined){
            return true;
        }else if(Array.isArray(data)){
            //这是一个数组
            if(data.length==0){
                return true;
            }else if(bool){
                //bool为真则是严格模式，每一个数组元素都需要审查，但是只要有一个不为空即有效数据
                for(let a in data){
                    if(!this.isInvalid(data[a])){
                        //出现有效数据，返回
                        return false;
                    }
                }
                //到达这里说明都是无效数据
                return true;
            }else{
                //轻松模式，不为空就是有效数据
                return false;
            }            
        }else if((typeof data) == 'object'){
            //这是一个对象数据
            if(bool){
                for(let a in data){
                    if(!this.isInvalid(data[a])){
                        //出现有效数据，返回
                        return false;
                    }
                }
                //到达这里说明都是无效数据
                return true;
            }
            return false
            //走到这里一般都是基本数据了，字符串，数值等
        }else if(data===''){
            return true;
        }else{
            //有效数据
            return false;
        }
    }
    //数组去重removeDuplicate
    static removeDuplicate(anArrayOf){
        let arr = {};
        anArrayOf.forEach(e=>{
            if(arr[e]){
                arr[e]++;
            }else{
                arr[e] = 1;
            }
        })
        return Object.keys(arr).filter(e=>arr[e]===1);
    } 
}
